package org.ehe.finance.currency.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.ehe.common.mybatis.core.domain.BaseEntity2;

import java.math.BigDecimal;

/**
 * 币种表实体类
 * @author :zhangnn
 * @className :ErpFinanceCurrency
 * @description: TODO
 * @date 2025-08-26 16:55:29
 */

@Data
@TableName("erp_finance_currency")
public class ErpFinanceCurrency extends BaseEntity2 {
    /**
     * 币种ID（主键，自增）
     * 对应表字段：id
     */
    @TableId(type = IdType.AUTO)
    private Long id;

    /**
     * 币种编码（非空，如CNY、USD）
     * 对应表字段：currency_code
     */
    @TableField("currency_code")
    private String currencyCode;

    /**
     * 币种名称（非空，如人民币、美元）
     * 对应表字段：currency_name
     */
    @TableField("currency_name")
    private String currencyName;

    /**
     * 货币符号（可为空，如¥、$）
     * 对应表字段：symbol
     */
    @TableField("symbol")
    private String symbol;

    /**
     * 是否本位币（默认0：否，1：是）
     * 对应表字段：is_base（bit(1)类型）
     * 注意：MySQL的bit(1)在Java中映射为Boolean，true对应1，false对应0
     */
    @TableField("is_base")
    private Boolean isBase;

    /**
     * 汇率（默认1.0000，保留4位小数）
     * 对应表字段：exchange_rate（decimal(10,4)）
     * 用BigDecimal避免浮点精度丢失，符合财务数据规范
     */
    @TableField("exchange_rate")
    private BigDecimal exchangeRate;

    /**
     * 小数位数（默认2位，如日元常用4位）
     * 对应表字段：decimal_places（tinyint）
     */
    @TableField("decimal_places")
    private Integer decimalPlaces;

    /**
     * 状态（0：禁用，1：启用；默认1）
     * 对应表字段：status（tinyint）
     * 建议后续可通过枚举优化（如CurrencyStatusEnum），此处先用Integer保持简洁
     */
    @TableField("status")
    private Integer status;

    /**
     * 创建部门ID
     * 对应表字段：create_dept（bigint）
     */
    @TableField("create_dept")
    private Long createDept;

}
